home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group98b.txt
/
000144_icon-group-sender _Wed Jul 22 13:51:48 1998.msg
< prev
next >
Wrap
Internet Message Format
|
2000-09-20
|
6KB
Return-Path: <icon-group-sender>
Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
by baskerville.CS.Arizona.EDU (8.8.8/8.8.7) with SMTP id NAA20647
for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Wed, 22 Jul 1998 13:51:48 -0700 (MST)
Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
id AA23494; Wed, 22 Jul 1998 13:51:32 -0700
From: pygmy@eskimo.com (Frank Sergeant)
To: icon-group@baskerville.CS.Arizona.EDU
Subject: Re: using Icon for database application
Date: Wed, 22 Jul 1998 15:03:02 -0500
Reply-To: frank.sergeant@pobox.com
Message-Id: <2Vkt1Yv1uQST084yn@eskimo.com>
Lines: 126
Errors-To: icon-group-errors@optima.CS.Arizona.EDU
Status: RO
Content-Length: 5611
Oh, I've been moving slowly. I think I got too excited
seeing the native W95 menus and buttons working and
unjustifiably thought everything else would work out
also. I overlooked the text entry fields, the
picklists, and so forth. TextDialog() as well as VIB
seem useless to me at the moment. Perhaps I could dive
into the Icon source code and modify TextDialog() to
work the way I want. Ditto for implementing native
text entry fields etc based upon the current interface
to native buttons. However, from the brief glance I
gave the code a few weeks ago I think I just do not
want to take on what may be such a large and possibly
fruitless task. I believe Clint has confirmed that
winicon does not have a built-in method of calling
external C routines, so that makes adding other native
W95 widgets (and sockets) more difficult.
I have been almost ready to give up Icon for this
project (but glad to keep it available for plain text
processing).
However, I see two possibilities that remain for using
winicon. The first is to write my own widgets using
the built-in Icon graphics routines. That is, instead
of trying to call native W95 widgets, I just "draw"
them on the screen myself, position the cursor
explicitly, catch each keystroke, etc. etc. This could
well be easier than trying to figure out the interface
to Windows and the Icon source code. This might be a
reasonable approach. It still leaves the question of
socket access. I think I could write a tiny program in
C that handles the socket connection and communicates
with the Icon process via a shared disk file. This
would seem to be an acceptable work around until
winicon gets socket support.
The other possibility is to decide to let web browsers
handle the user interface. Then, I'm back to being
able to use Icon in purely text mode. It can generate
the HTML to send via the web server to the browser. My
book on JavaScript arrived yesterday. Using an older
MSIE browser to view some of the book's examples makes
me think this just might work. JavaScript seems to let
me catch the keystroke events (I really want my users
to be able to do with keystrokes everything they can
now do with keystrokes!) and generate my own 'submit'
requests, rather than requiring the user to click on
'submit'. Anyway, the examples didn't look too bad.
I've downloaded a newer Netscape which I'll try to
install later today and then take another look at the
JavaScript examples. The buttons, picklists, text
entry fields, and so forth looked pretty good under
MSIE. The fonts were ugly, but perhaps they could be
changed. The browser's own tool bar and menu bar still
took up far too much screen real estate but I think
(from the JavaScript book) that I can create a
full-screen window.
In my depression (following my earlier elation) over
Icon, I've reconsidered VO (Computer Assoicates' Visual
Objects), Delphi, Python with Tk, Python with a COM
interface to Delphi, Object REXX, a raw C engine that
reads the widget information from a text file (which
Icon could then write), etc.
Object REXX is definitely out. The examples I tried
were too slow even on a P166 with 48MB RAM and a copy
of the Object REXX run-time would need to be purchased
for each machine in each customer's office. To hell
with that. I probably could learn VO or Delphi
eventually. VO looks better but I found periodic
slow-downs when browsing over the network that seem
unacceptable (and unexplainable). The Python COM
Delphi might produce very pretty screens but is a whole
'nuther learning experience I'd rather avoid. I may
decide that Python with Tk is fast enough after all.
At least Python has sockets built in (as I understand
it). I don't really want to build my own GUI engine in
raw C. The graphapp C GUI library looks good so that's
still a possibility. JPython (Python written in Java,
and so having access to the Java GUI widgets) is
another possibility.
I guess I'll try to push further with JavaScript/Icon
and possibly the Python/Tk and see what happens.
> I suppose what I'm finding odd for me is that I usually
> use icon because of the way it handles text, not
> because of its graphics capabilities.
So, we have a terrible inversion. (Well, perhaps only
I have it). Would should be the difficult/important
part of the application (the actual data processing) is
very easy. Would should be the trivial part (put up the
GUI) is a nightmare of endless "gotchas".
> You might also find the zero notation useful (end of
> record, line, whatever) if you have data kept in a list
> of varying length.
Yes, I love that in Icon. Python is zero-based
and so cannot use 0 as the end of list indicator.
Other than that, Python's array/list/dictionary
handling looks very much like Icon's (to my untrained
eye). Of course, since my Clipper code is already
one-based, it would be less error prone to move to
one-based Icon rather than to zero-based Python.
> Anyway, I was glad to see your post to the icon-group.
> I think we should see some work soon on the problem out
> of Arizona and Texas. My understanding is that the
> Arizona group did most of the work on vib.
Disclaimer: This post is meant mostly to express my
current state of mind (it is possible this state of
mind was affected somewhat by working until very late
last night and then awakening to customer problems
early this morning). No offense is meant to the
hard working, good natured, helpful Icon and Python
people. All suggestions, comments, criticisms
cheerfully received either by posting or direct email.
-- Frank
frank.sergeant@pobox.com